@include base(index) {
    $swiper-height: (
        default: 200px,
        sm: 300px,
        md: 520px,
        lg: 650px
    );
    $swiper-text-padding-top: (
        default: 0,
        md: 140px,
        lg: 180px
    );
    $swiper-text-h3: (
        default: 20px,
        sm: 28px,
        md: 50px,
        lg: 60px
    );
    $swiper-text-div: (
        default: 20px,
        sm: 28px,
        md: 36px,
        lg: 44px
    );
    $swiper-text-span: (
        default: 14px,
        sm: 18px,
        md: 24px,
        lg: 28px
    );
    $swiper-pagination-size: (
        default: 4px,
        sm: 6px,
        md: 10px
    );
    
    $plan-padding: (
        default: 3% 0,
        sm: 40px 0,
        md: 70px 0,
        lg: 100px 0
    );
    $plan-item-name: (
        default: 16px,
        lg: 20px
    );
    $plan-item-en: (
        default: 11px,
        lg: 12px
    );
    $plan-item-menu: (
        default: 14px,
        sm: 18px,
        md: 24px
    );
    $plan-item-title: (
        default: 20px,
        sm: 28px,
        md: 36px
    );
    $plan-item-width: (
        default: 50%,
        sm: 25%
    );
    
    $wrap-padding: (
        default: 40px,
        sm: 60px,
        md: 80px
    );
    
    $news-item-width: (
        default: 100%,
        sm: 50%
    );
    $news-item-padding-left: (
        default: 0,
        sm: 15px,
        md: 35px
    );
    $news-item-padding-top: (
        default: 15px,
        md: 35px
    );
    $news-item-margin-left: (
        default: 0,
        sm: -15px,
        md: -35px
    );
    $partner-item-width: (
        default: 100%,
        md: 20%
    );
    
    &-swiper {
        box-sizing: content-box;
        @include responsive($header-height, padding-top);
        @include responsive($swiper-height, height);
        
        .swiper {
            &-container {
                height: 100%;
            }
            &-item {
                width: 100%;
                height: 100%;
                background-position: center;
                background-repeat: no-repeat;
                background-size: cover;
                
                &__inner {
                    width: 100%;
                    height: 100%;
                    background-position: center;
                    background-repeat: no-repeat;
                    background-size: contain;
                    display: flex;
                    align-items: center;
                    justify-content: flex-start;
                    
                    .text {
                        color: #fff;
                        line-height: 1.25;
                        @include responsive($swiper-text-padding-top, padding-top);
                        
                        
                        h3 {
                            font-weight: normal;
                            margin-bottom: .8em;
                            @include responsive($swiper-text-h3, font-size);
                        }
                        
                        div {
                            @include responsive($swiper-text-div, font-size);
                        }
                        
                        span {
                            opacity: .7;
                            display: block;
                            @include responsive($swiper-text-span, font-size);
                        }
                    }
                }
            }
            &-pagination {
                &-bullet {
                    border-radius: 0;
                    background-color: transparent;
                    border: 1px solid rgba(255, 255, 255, .5);
                    @include responsive($swiper-pagination-size, width);
                    @include responsive($swiper-pagination-size, height);
                    
                    &-active {
                        background-color: #fff;
                        border-color: #fff;
                    }
                }
            }
        }
    }
    &-plan {
        background: url('~assets/images/bg-1.jpg') no-repeat;
        background-size: cover;
        @include responsive($plan-padding, padding);
        &__box {
            display: block;
            width: 100%;
            
            .sidebar {
                display: flex;
                justify-content: space-between;
                align-items: center;
                background: url('~assets/images/bg-2.jpg') no-repeat center;
                background-size: cover;
                width: 100%;
                height: 100px;
                padding: 20px;
                
                .title {
                    color: #fff;
                    font-weight: bold;
                    line-height: 1.15;
                    @include responsive($plan-item-title, font-size);
                    
                    i {
                        display: none;
                        width: 30px;
                        height: 5px;
                        background-color: #fff;
                        margin-bottom: 40px;
                    }
                }
                
                .menu {
                    margin-top: 0;
                    display: flex;
                    
                    .item {
                        color: #fff;
                        cursor: pointer;
                        padding: 8px 20px;
                        text-align: center;
                        position: relative;
                        border-radius: 10px;
                        @include responsive($plan-item-menu, font-size);
                        
                        &.active {
                            background-color: #fff;
                            color: #3379fa;
                            
                            &:after {
                                content: '\20';
                                display: block;
                                position: absolute;
                                width: 0;
                                height: 0;
                                border-width: 8px 0 8px 8px;
                                border-style: solid;
                                border-color: transparent transparent transparent #fff;
                                right: 50%;
                                margin-right: -4px;
                                bottom: -10px;
                                transform: rotate(90deg);
                            }
                        }
                    }
                }
            }
            
            .lists {
                display: block;
                vertical-align: top;
                background-color: #fff;
                
                &-item {
                    display: block;
                    vertical-align: middle;
                    text-align: center;
                    text-decoration: none;
                    color: #444;
                    border-left: 1px solid #f1f1f1;
                    border-top: 1px solid #f1f1f1;
                    overflow: hidden;
                    padding: 20px;
                    @include responsive($plan-item-width, width);
                    
                    &:nth-child(3) {
                        border-left: 0;
                    }
                    
                    .icon {
                        width: 72px;
                        height: 72px;
                        border-radius: 100%;
                        font-size: 0;
                        background-color: rgba(21, 124, 231, .06);
                        margin: 0 auto;
                        position: relative;
                        
                        &:after {
                            $--margin: 10px;
                            content: '\20';
                            display: block;
                            position: absolute;
                            top: $--margin;
                            right: $--margin;
                            bottom: $--margin;
                            left: $--margin;
                            background-color: rgba(21, 124, 231, .06);
                            border-radius: 100%;
                            transform-origin: center;
                            @include transition(transform 400ms ease);
                        }
                        
                        img {
                            width: 100%;
                            position: relative;
                            z-index: 1;
                        }
                    }
                    
                    .name {
                        margin-top: 15px;
                        @include responsive($plan-item-name, font-size);
                    }
                    
                    .en {
                        opacity: .5;
                        text-transform: uppercase;
                        @include responsive($plan-item-en, font-size);
                    }
                    
                    &:hover {
                        .icon:after {
                            transform: scale(8);
                        }
                    }
                }
                
                &-box {
                    display: none;
                    width: 100%;
                    height: 100%;
                    
                    &.show {
                        display: block;
                    }
                    
                    &__row {
                        display: flex;
                        align-items: stretch;
                        flex-wrap: wrap;
                        
                        .lists-item:first-child {
                            border-left: 0;
                        }
                    }
                }
            }
        }
    }
    &-window {
        height: 180px;
        width: 100%;
        border-radius: 5px;
        background-repeat: no-repeat;
        background-position: center;
        background-size: cover;
        margin-bottom: $grid-gutter-width;
        
        @for $i from 1 through 4 {
            &.item-#{$i} {
                background-image: url('~assets/images/img-#{$i}.jpg');
            }
        }
        
        .text {
            color: #fff;
            padding: 45px 30px 0;
            
            &:before {
                content: '\20';
                width: 20px;
                height: 3px;
                background-color: #fff;
                display: block;
                margin-bottom: 35px;
            }
            
            .title {
                font-size: 24px;
                font-weight: bold;
                
                span {
                    color: #008aff;
                }
            }
            
            .intro {
                font-size: 16px;
                
                &.en {
                    text-transform: uppercase;
                    font-size: 14px;
                }
            }
        }
    }
    &-wrap {
        @include responsive($wrap-padding, padding-top);
        @include responsive($wrap-padding, padding-bottom);
    }
    &-news {
        height: auto;
        background: url('~assets/images/bg-3.jpg') no-repeat center;
        background-size: cover;
        padding-top: 45px;
        
        &__item {
            height: auto;
            @include responsive($news-item-width, width);
            @include responsive($news-item-padding-left, padding-left);
            @include responsive($news-item-padding-top, padding-top);
        }
        
        &__inner {
            display: block;
            width: 99%;
            height: auto;
            border: 1px solid rgba(255, 255, 255, .4);
            padding: 30px;
            border-radius: 5px;
            text-decoration: none;
            color: #fff;
            margin-left: auto;
            margin-right: auto;
            @include transition(border-color 400ms ease);
            
            .title {
                font-size: 24px;
                font-weight: bold;
                white-space: nowrap;
                text-overflow: ellipsis;
                overflow: hidden;
                
                &:after {
                    content: '\20';
                    display: block;
                    width: 50px;
                    height: 2px;
                    background-color: #fff;
                    margin: 15px 0;
                }
            }
            
            .intro {
                font-size: 14px;
                line-height: 1.4;
                height: auto;
                text-align: justify;
                margin-bottom: 15px;
            }
            
            .bar {
                color: #88c2ff;
                font-size: 14px;
                line-height: .6;
                @include transition(color 400ms ease);
                
                .view {
                    float: left;
                    background: url('~assets/images/view-arrow.png') no-repeat right bottom;
                    background-size: auto 5px;
                    padding-right: 24px;
                }
                
                .time {
                    float: right;
                }
            }
            
            &:hover {
                border-color: #fff;
                
                .bar {
                    color: #fff;
                }
            }
        }
        
        &__box {
            height: auto;
            display: flex;
            flex-wrap: wrap;
            @include responsive($news-item-margin-left, margin-left);
        }
        
        &__title {
            color: #fff;
            text-align: center;
            
            .title {
                font-size: 28px;
                font-weight: bold;
                
                &:before {
                    content: '\20';
                    width: 30px;
                    height: 5px;
                    display: block;
                    background-color: #fff;
                    margin-bottom: 15px;
                    margin-left: auto;
                    margin-right: auto;
                }
            }
            
            .pagination {
                margin-bottom: 10px;
                margin-top: 10px;
                
                .arrow {
                    display: inline-block;
                    width: 30px;
                    height: 30px;
                    background-repeat: no-repeat;
                    background-position: center;
                    background-size: cover;
                    cursor: pointer;
                    outline: none;
                    margin-left: 2px;
                    margin-right: 2px;
                    
                    &.left {
                        background-image: url('~assets/images/arrow-left.png');
                    }
                    
                    &.right {
                        background-image: url('~assets/images/arrow-right.png');
                    }
                    
                    &.swiper-button-disabled {
                        opacity: .3;
                    }
                }
            }
        }
        
        .full {
            height: auto;
        }
        
        .swiper {
            &-container {
                height: 100%;
            }
        }
    }
    &-partner {
        display: flex;
        width: 100%;
        border-right: 1px solid #e8e8e8;
        border-bottom: 1px solid #e8e8e8;
        
        &__row {
            display: block;
            flex: 1 1 auto;
        }
        
        &__item {
            display: block;
            height: auto;
            font-size: 0;
            border-left: 1px solid #e8e8e8;
            border-top: 1px solid #e8e8e8;
            vertical-align: middle;
            @include responsive($partner-item-width, width);
            
            img {
                width: 100%;
            }
        }
    }
}


@include adaptive(sm) {
    @include base(index) {
        &-plan {
            &__box {
                .lists {
                    &-item {
                        &:nth-child(3) {
                            border-left: 1px solid #f1f1f1;
                        }
                    }
                }
            }
        }
    }
}

@include adaptive(md) {
    @include base(index) {
        &-swiper {
            .swiper {
                &-item {
                    &__inner {
                        display: block;
                    }
                }
            }
        }
        &-plan {
            &__box {
                display: table;
                height: 448px;
            
                .sidebar, .lists {
                    display: table-cell;
                }
                
                .sidebar {
                    width: 240px;
                    height: 100%;
                    padding: 40px;
                    
                    .title {
                        margin-top: 20px;
                        
                        i {
                            display: block;
                        }
                    }
                    
                    .menu {
                        margin-top: 100px;
                        display: block;
                        
                        .item {
                            width: 60%;
                            height: 43px;
                            line-height: 43px;
                            border-radius: 43px;
                            margin-bottom: 10px;
                            padding-top: 0;
                            padding-bottom: 0;
                            
                            &.active {
                                &:after {
                                    right: -6px;
                                    top: 50%;
                                    bottom: auto;
                                    margin-top: -8px;
                                    margin-right: 0;
                                    transform: rotate(0);
                                }
                            }
                        }
                    }
                }
                
                .lists {
                    &-item {
                        display: table-cell;
                        padding: 0;
                        height: 50%;
                        .icon {
                            width: 82px;
                            height: 82px;
                        }
                    }
                    &-box {
                        &.show {
                            display: table;
                        }
                        &__row {
                            display: table-row;
                        
                            &:first-child .lists-item {
                                border-top: 0;
                            }
                        }
                    }
                }
            }
        }
        &-news {
            &__title {
                padding-top: 30px;
                text-align: left;
            
                .title {
                    font-size: 36px;

                    &:before {
                        margin-bottom: 35px;
                        margin-top: 90px;
                        margin-left: 0;
                        margin-right: 0;
                    }
                }
                
                .pagination {
                    margin-top: 60px;
                    
                    .arrow {
                        float: left;
                        display: block;
                        margin-left: 0;
                        margin-right: 10px;
                    }
                }
            }
            
            &__inner {
                width: 100%;
                height: 100%;
                
                .intro {
                    height: 53%;
                }
            }
            
            &__box {
                height: auto;
                display: block;
            }
            
            &__item {
                height: 50%;
                float: left;
            }
        
            .full {
                height: auto;
            }
        }
        &-partner {
            display: table;
            &__row {
                display: row;
            }
            &__item {
                display: table-cell;
                height: 120px;
            }
        }
    }
}